package Controler.Cours;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import Model.Cours;
import Model.Lieu;
import Model.Listes;
import Controler.Fonctions;
import JDBC.Cours_Afficher;
import JDBC.Cours_Ajouter;
import JDBC.Cours_SelectionLieu;

/**
 * Servlet implementation class CreationCours
 */
@WebServlet("/Cours_CreationCoursController")
public class Cours_CreationCoursController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Cours_CreationCoursController() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		String url = "Vues/VuesGrp3/vueGRP3_AfficheCours.jsp";
		boolean heure=false;
		boolean date=false;
		
		if(request.getParameter("ajoutMatiere")!=null)
				{
				url="Vues/Matiere/vueGRP1_ajouter.jsp";
				}
		
	
		
		if(request.getParameter("ok")!=null)
		{
		
			String duree = request.getParameter("duree");
			String d1 = request.getParameter("d1");
			String d2 = request.getParameter("d2");
			String d3 = request.getParameter("d3");
			String hd1 = request.getParameter("hd1");
			String hd2 = request.getParameter("hd2");
			String hf1 = request.getParameter("hf1");
			String hf2 = request.getParameter("hf2");
			
			if(duree.equals("") || d1.equals("") || d2.equals("") || d3.equals("") || hd1.equals("") || hd2.equals("")
					|| hf1.equals("") || hf2.equals(""))
			{
				url = "Vues/VuesGrp3/VuesGrp3_Erreur/erreurCreationCours.jsp";
			}
			else
			{
				String dateCours = d1+"-"+d2+"-"+d3;
				String heureDebut = hd1+":"+hd2;
				String heureFin = hf1+":"+hf2;
				int heuredebut=0;
				int minutedebut=0;
				int heurefin=0;
				int minuteFin=0;
				int dureeCours=0;
				
				try
				{
					heuredebut = Integer.parseInt(hd1);
					minutedebut = Integer.parseInt(hd2);
					heurefin = Integer.parseInt(hf1);
					minuteFin = Integer.parseInt(hf2);
					dureeCours = Integer.parseInt(duree);
					
				}
				catch (Exception e)
				{
					url = "Vues/VuesGrp3/VuesGrp3_Erreur/erreurCreationCours.jsp";
				}
				
				
				if(Fonctions.verifierHeure(heureDebut) && Fonctions.verifierHeure(heureFin))
				{
					if(Fonctions.comparerHeure(heureDebut,heureFin))
					{
						heure=true;
					}
				}
				

				if(Fonctions.verifierDate(dateCours))
				{
					date=true;
				}
				

				
				if(heure && date)
				{
					Cours c = new Cours();
					int idLieuCours=0;
					int idEleve=Integer.parseInt(request.getParameter("eleve"));		// on déclare l'id de l'élève qui va nous permettre de récupérer le lieu du cours
					Cours_SelectionLieu coursSel=new Cours_SelectionLieu();
					idLieuCours=coursSel.retournerLieu(idEleve);
					
					c.setDateCours(dateCours);
					c.setDuree(dureeCours);
					c.setHeureDebut(heureDebut);
					c.setHeureFin(heureFin);
					c.setId_Eleve(idEleve);
					
					c.setId_Mat(Integer.parseInt(request.getParameter("matiere")));
					c.setId_Niv(Integer.parseInt(request.getParameter("niveau")));
					c.setId_Prof(Integer.parseInt(request.getParameter("professeur")));
					c.setFrequence(request.getParameter("frequence"));
					c.setCommentaire(request.getParameter("commentaire"));
						 // on ne récupère pas l'id avec la jsp mais avec la méthode Cours_SélectionLieu
					c.setId_Lieu(idLieuCours);
					Cours_Ajouter cours = new Cours_Ajouter();
					cours.ajouter(c);
				}
				else
				{
					url = "Vues/VuesGrp3/VuesGrp3_Erreur/erreurCreationCours.jsp";
				}
			}
		}
		
		if(request.getParameter("out")!=null)
		{
			url = "Vues/VuesGrp3/vueGRP3_AfficheCours.jsp";
		}
		
		HttpSession session = request.getSession();
		Listes listes = (Listes) session.getAttribute("listes");
		
		if (listes==null)
		{
			listes = new Listes();
		}
		
		Cours_Afficher listeCours = new Cours_Afficher();
		ArrayList<Cours> mesCours = listeCours.afficherCours();
		listes.setMesCours(mesCours);
		session.setAttribute("listes", listes);
		request.getRequestDispatcher(url).forward(request, response);
	}

}
